<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	
	
	<script type="text/javascript">
		/*
			3.元字符
			\d	匹配一个数字 
			\w	匹配一个英文字母、数字或下划线
			\s	匹配一个空白字符
			
			4.特殊字符
			n*	匹配零个或者多个n的字符串
			n+	匹配任何至少包含一个n的字符串
			n?	匹配零个或者1个n的字符串 
			^n 	匹配以n开头的字符串
			n$ 	匹配以n结尾的字符串
			n{x}	匹配包含x个n的序列字符串
			n{x,y}	匹配至少x个，最多y个n的字符串
			n{x,}	匹配至少x个的字符串 
			?=n	匹配其后紧接指定的n字符串
			?!n	匹配其后没有紧接指定的n字符串
			\b  匹配一个单词边界，也就是单词与空格之间的位置，不匹配任何字符
			\B	匹配除单词边界以外的部分
			 | 	左右两边表达式之间 “或” 关系，匹配左边或者右边
			[]	匹配方括号中的任一字符
			[^]	匹配除方括号中的字符外的任何字符
			()	括号里面表示一个整体
			.	匹配除换行之外的任何一个字符

		 */
		
		var str = 'aab aac aaa @_@ This is Ken speaking.By 2019-05-5d';
		console.log(str.match(/\d/));
		console.log(str.match(/\D/));
		console.log(str.match(/\s/));
		console.log(str.match(/is/));
		console.log(str.match(/\bis/));
		console.log(str.match(/\d+/));
		console.log(str.match(/k?/)); // 匹配0或者1
		console.log(str.match(/a{2}/))
		console.log(str.match(/\d{2,4}/g))
		console.log(str.match(/d$/))
		console.log(str.match(/^a/))
		console.log(str.match(/aa[b|c|a]/g))
		console.log(str.match(/[^0-9]/))
		console.log(str.match(/a(?=i|k)/))
		
		/*
			模式修正符
			i		在和模式进行匹配时不区分大小写
			g		全局匹配
			m		将字符串视为多行
		 */
		var str = '<u>123</u><u>Abcadae</u><a href=""></a><u>123</u><u>Abcadae</u>';
		console.log(str.match(/a/i))
		console.log(str.match(/a/ig))

		// 贪婪模式匹配
		console.log(str.match(/<u>.*<\/u>/));
		
		// 非贪婪模式匹配
		console.log(str.match(/<u>.*?<\/u>/g));

		
		








	</script>
</body>
</html>